package com.stone.stoneanswer.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.stone.stoneanswer.model.dto.post.PostQueryRequest;
import com.stone.stoneanswer.model.entity.Post;
import com.stone.stoneanswer.model.vo.PostVO;
import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 帖子服务
 *
 * @author <a href="https://github.com/liyupi">程序员鱼皮</a>
 * @from <a href="https://yupi.icu">编程导航知识星球</a>
 */
public interface PostService extends IService<Post> {

    Page<PostVO> listPublishPostVOByPage(PostQueryRequest postQueryRequest, HttpServletRequest request);

    PostVO getPostVOById(long id, HttpServletRequest request);

    Page<Post> listPostByPage(PostQueryRequest postQueryRequest);

    Page<PostVO> listPostVOByPage(PostQueryRequest postQueryRequest, HttpServletRequest request);

    Page<PostVO> listFavourPostVOByPage(PostQueryRequest postQueryRequest, HttpServletRequest request);

    List<PostVO> listPostVO(PostQueryRequest postQueryRequest, HttpServletRequest request);

    List<PostVO> listPublishPostVO(PostQueryRequest postQueryRequest, HttpServletRequest request);

    List<PostVO> listFavourPostVO(PostQueryRequest postQueryRequest, HttpServletRequest request);
}
